<?php

namespace DebugComponent;

/**
 * Interface for renderable plugin
 */
interface IRenderable {
    /**
     * Set renderer which is used for rendering plugin content
     *
     * @param IRenderer $renderer
     * @return void
     */
    public function setRenderer(IRenderer $renderer);

    /**
     * Render plugin content
     *
     * @return string HTML code
     */
    public function render();

    /**
     * Retrieve plugin title
     *
     * @return string
     */
    public function getTitle();

    /**
     * Return plugin subtitle
     *
     * @return string|null
     */
    public function getSubtitle();
}